package com.jie.demo1.common.comfig.minio;


import com.jie.demo1.pojo.configPojo.minioProperties;
import io.minio.MinioClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.ConfigurationPropertiesScan;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration // 标记为配置类
@EnableConfigurationProperties({minioProperties.class}) // 启用配置属性，指定配置属性类，单个配置类使用
//@ConfigurationPropertiesScan("com.jie.demo1.pojo.configPojo") // 扫描配置属性所在的包，自动注册配置属性类，多个配置类使用

// 配置类，用于注册配置属性类
public class MinioConfiguration {
    @Autowired
    private minioProperties minioProperties;

    @Bean
    public MinioClient minioClient() {
        // 配置 minio 服务的 endpoint、accessKey 和 secretKey,返回一个 minio 客户端对象，之后就可以使用这个对象来操作 minio 服务
        return MinioClient.builder().endpoint(minioProperties.getEndpoint()) // 配置 minio 服务地址
                .credentials(minioProperties.getAccessKey(), minioProperties.getSecretKey()) // 配置 minio 服务的 accessKey 和 secretKey
                .build();
    }
}
